#ifndef BASE_UTILS_INCLUDE_PLATFORM_ABSTRACTION_H
#define BASE_UTILS_INCLUDE_PLATFORM_ABSTRACTION_H

#ifdef _WIN32
#include <windows.h>
#include <io.h>
#else
#include <unistd.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <pthread.h>
#endif

#include <cstddef>

namespace Base {
namespace Utils {
namespace Platform {

// 文件操作
int FileOpen(const char* path, int flags, int mode = 0);
int FileClose(int fd);
ssize_t FileWrite(int fd, const void* buf, size_t count);
int FileSync(int fd);

// 内存操作
void* MemoryAllocate(size_t size);
void MemoryFree(void* ptr);
void* MemoryAllocateAligned(size_t size, size_t alignment);
void MemoryFreeAligned(void* ptr);

// 线程操作
void ThreadSetName(const char* name);
} // namespace Platform
} // namespace Utils
} // namespace Base

#endif // BASE_UTILS_INCLUDE_PLATFORM_ABSTRACTION_H
